#pragma once

#include <QString>
#include <QWidget>
#include "PluginIID.h"
#include "PluginStruct.h"
class ICore;

/*
    IFunctionPlugin: 功能插件接口类，用来描述功能插件的通用性质。 核心功能是方便Core的管理
*/

class IFunctionPlugin
{
public:
    virtual ~IFunctionPlugin() = default;
    virtual const FunctionPluginInfo& pluginInfo() const = 0;
    virtual bool initialize(ICore* core) = 0;
    virtual void shutdown() = 0;

    // 这里可扩展功能接口
    // virtual bool doWork(const QVariant& params) = 0;
};

Q_DECLARE_INTERFACE(IFunctionPlugin, IID_IFunctionPlugin)
